import freemarker.cache.FileTemplateLoader;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.junit.Test;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/**
 * 测试字符串模板
 * @author jamie
 */
public class FreemarkerTest02 {
    /**
     * 应用场景: com.${p1}.${p1}.${p1}.User
     * @throws IOException       io异常
     * @throws TemplateException 模板异常
     */
    @Test
    public void test01() throws IOException, TemplateException {
        // 1.创建FreeMarker的配置类
        Configuration cfg = new Configuration();
        // 2.指定模板加载器(字符串模板)
        cfg.setTemplateLoader(new StringTemplateLoader());
        // 3.创建字符串模板
        // 3.1 字符串
        String templateStr = "欢迎你:${username}";
        // 4.2 通过字符串创建模板
        Template template = new Template("name1", new StringReader(templateStr), cfg);
        // 4.构建数据模型
        Map<String, Object> dataModel = new HashMap<>(16);
        dataModel.put("username", "jamie");
        // 5.输出到控制台
        /* 处理模型
         * 参数一：数据模型
         * 参数二：writer(FileWriter(文件输出),printWriter(控制台数据))
         */
        template.process(dataModel, new PrintWriter(System.out));

    }
}
